home *** CD-ROM | disk | FTP | other *** search
- /*
- File: Serial.h
-
- Contains: Serial port Interfaces.
-
- Version: Technology: System 7.5
- Package: Universal Interfaces 2.0 in “MPW Latest” on ETO #17
-
- Copyright: © 1984-1995 by Apple Computer, Inc.
- All rights reserved.
-
- Bugs?: If you find a problem with this file, use the Apple Bug Reporter
- stack. Include the file and version information (from above)
- in the problem description and send to:
- Internet: apple.bugs@applelink.apple.com
- AppleLink: APPLE.BUGS
-
- */
-
- #ifndef __SERIAL__
- #define __SERIAL__
-
-
- #ifndef __TYPES__
- #include <Types.h>
- #endif
- /* #include <ConditionalMacros.h> */
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=mac68k
- #endif
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import on
- #endif
-
-
- enum {
- baud300 = 380,
- baud600 = 189,
- baud1200 = 94,
- baud1800 = 62,
- baud2400 = 46,
- baud3600 = 30,
- baud4800 = 22,
- baud7200 = 14,
- baud9600 = 10,
- baud19200 = 4,
- baud38400 = 1,
- baud57600 = 0,
- stop10 = 16384,
- stop15 = -32768,
- stop20 = -16384,
- noParity = 0,
- oddParity = 4096,
- evenParity = 12288,
- data5 = 0,
- data6 = 2048,
- data7 = 1024,
- data8 = 3072
- };
-
- enum {
- ctsEvent = 32,
- breakEvent = 128,
- xOffWasSent = 128,
- dtrNegated = 64,
- ainRefNum = -6, /*serial port A input*/
- aoutRefNum = -7, /*serial port A output*/
- binRefNum = -8, /*serial port B input*/
- boutRefNum = -9, /*serial port B output*/
- swOverrunErr = 1, /*serial driver error masks*/
- breakErr = 8, /*serial driver error masks*/
- parityErr = 16, /*serial driver error masks*/
- hwOverrunErr = 32, /*serial driver error masks*/
- framingErr = 64, /*serial driver error masks*/
- serdOptionClockExternal = 0x40, /*option bit used with Control code 16*/
- serdOptionPreserveDTR = 0x80 /*option bit used with Control code 16*/
- };
-
- enum {
- sPortA,
- sPortB
- };
-
- typedef SInt8 SPortSel;
-
- /* csCodes for serial driver Control routines */
-
- enum {
- serdReset = 8,
- serdSetBuf = 9,
- serdHShake = 10,
- serdClrBrk = 11,
- serdSetBrk = 12,
- serdSetBaud = 13,
- serdHShakeDTR = 14,
- serdSetMIDI = 15,
- serdSetMisc = 16,
- serdSetDTR = 17,
- serdClrDTR = 18,
- serdSetPEChar = 19,
- serdSetPECharAlternate = 20,
- serdSetXOff = 21,
- serdClrXOff = 22,
- serdSendXOnConditional = 23,
- serdSendXOn = 24,
- serdSendXOffConditional = 25,
- serdSendXOff = 26,
- serdChannelReset = 27,
- serdSet230KBaud = 'JF', /* set 230K baud data rate */
- serdSetPollWrite = 'jf', /* disable interrupt-driven transmit */
- serdSetFlushCount = 'FC'
- };
-
- /* csCodes for serial driver Status routines */
- enum {
- serdGetBuf = 2,
- serdStatus = 8,
- serdGetVers = 9,
- serdGetVersSys = 0x8000
- };
-
- struct SerShk {
- Byte fXOn; /*XOn flow control enabled flag*/
- Byte fCTS; /*CTS flow control enabled flag*/
- unsigned char xOn; /*XOn character*/
- unsigned char xOff; /*XOff character*/
- Byte errs; /*errors mask bits*/
- Byte evts; /*event enable mask bits*/
- Byte fInX; /*Input flow control enabled flag*/
- Byte fDTR; /*DTR input flow control flag*/
- };
- typedef struct SerShk SerShk;
-
- struct SerStaRec {
- Byte cumErrs;
- Byte xOffSent;
- Byte rdPend;
- Byte wrPend;
- Byte ctsHold;
- Byte xOffHold;
- };
- typedef struct SerStaRec SerStaRec;
-
- extern pascal OSErr SerReset(short refNum, short serConfig);
- extern pascal OSErr SerSetBuf(short refNum, Ptr serBPtr, short serBLen);
- extern pascal OSErr SerHShake(short refNum, const SerShk *flags);
- extern pascal OSErr SerSetBrk(short refNum);
- extern pascal OSErr SerClrBrk(short refNum);
- extern pascal OSErr SerGetBuf(short refNum, long *count);
- extern pascal OSErr SerStatus(short refNum, SerStaRec *serSta);
-
- #if PRAGMA_IMPORT_SUPPORTED
- #pragma import off
- #endif
-
- #if PRAGMA_ALIGN_SUPPORTED
- #pragma options align=reset
- #endif
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __SERIAL__ */
-